Data capture system and method, and memory controllers and devices

ABSTRACT

Embodiments of a data capture system and method may be used in a variety of devices, such as in memory controllers and memory devices. The data capture system and method may generate a first set of periodic signals and a second set of periodic signals that differs from the first set. Either the first set of periodic signals or the second set of periodic signals may be selected and used to generate a set of data capture signals. The selection of either the first set or the second set may be made on the basis of the number of serial data digits in a previously captured burst of data. The data capture signals may then be used to capture a burst of serial data digits.

TECHNICAL FIELD

Embodiments of this invention relate to digital integrated circuits, and, more particularly, to systems and methods for correctly capturing serial data bursts in an integrated circuit device.

BACKGROUND OF THE INVENTION

Digital data is often coupled to integrated circuit devices, such as memory devices, in the form of one or more bursts of serial data. For example, memory devices may have 4 or 8 data bus terminals, each of which transmits or receives a specific number of data bits at the same time the other data bus terminals transmit or receive corresponding bits. For example, a first set of 8 write data bits may be applied to the 8 data bus terminals in parallel, followed by a second set of 8 bits, and so forth, until an eighth and final set of 8 write data bits have been applied to the data bus terminals.

As each burst of 8 write data bits is applied to the data bus terminals, the data bits are stored in respective latches responsive to a DQS signal, which is normally applied to the memory device along with the write data. Each bit of the write data may be applied to the data bus terminals at the same frequency as, and in synchronism with, a system clock signal. The transitions of the DQS signal are normally offset 90 degrees from the system clock signal so that the transitions of the DQS signal occur midway between the transitions of the system clock, and can be used to capture the write data in the memory device.

As the data bandwidth of memory devices has continued to increase, the need to transfer data at a faster rate has resulted in the development of memory devices that apply more than one write data bit to each data bus terminal during each period of the system clock signal. For example, memory devices known as double data rate (“DDR”) devices may capture write data on both the rising and falling edge transitions of the DQS signal. As a result, two write data bits can be captured at each data bus terminal during each period of the system clock signal.

Although the use of DDR techniques has been successful in significantly increasing the data bandwidth of memory devices, the need exists to transfer data at rates that are even faster than the rate at which data can be received and transmitted by DDR memory devices. As a result, DDR2 and DDR3 memory devices have been developed that receive and transmit data at even faster speeds. However, as clock speeds and resulting data rates have increased, the “data eye” during which the write data can be properly captured by a DQS signal transmitted to a memory device along with the write data has continued to decrease, thus making it more difficult to properly capture write data. One approach that has been proposed is to frequency divide the DQS signal and then generate multiple phases of the frequency-divided signal, such as 4 phases to generate DQS0-3 signals.

In operation of a memory device, write data capture may begin a specific latency period after a write command has been applied to a memory device in synchronism with the system clock signal. For example, the latency may be 6 transitions of the system clock signal. After the latency period has expired, a write signal may become active in synchronism with the system clock signal. Write data capture may then begin on the first rising edge of the DQS0-3 signal following the write signal becoming active. The first rising edge of one of the DQS0-3 signals is not necessarily a rising edge of the DQS0 signal. Instead, any one of the four DQS signals can be the first to transition high after the write signal becomes active. As a result, the first data bit that is captured in the memory device may be other than the DQ0 bit.

Despite the data bandwidth increases resulting from the transition from DDR to DDR2 and from DDR2 to DDR3, the need exists for still higher data bandwidths. Yet, significant problems can be encountered in attempting to transfer data at a faster rate, some of which are discussed below. Furthermore, although this discussion of the need to increase data bandwidth has been in the context of memory devices, a similar need exists for other types of digital electronic devices. Thus, there is a need for a technique for transferring data at an even faster rate.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a timing diagram illustrating how serial data bits may be captured by respective phases of a frequency divided strobe signal.

FIG. 2 is a timing diagram showing signals that may be present in a data capture system.

FIG. 3 is a timing diagram showing other signals that may be present in a data capture system.

FIG. 4 is a block diagram of a data capture system according to an embodiment of the present invention.

FIG. 5 is a timing diagram showing signals that are present in a data capture system of FIG. 4.

FIG. 6 is a block diagram of an embodiment of a memory device using an embodiment of a data capture system.

FIG. 7 is a block diagram of an embodiment of a memory system using a memory controller containing an embodiment of a data capture system.

DETAILED DESCRIPTION

One approach to increasing the data bandwidth beyond that achieved by DDR3 is to use data strobe signals having a higher frequency than the system clock frequency. For example, if the DQS signal had twice the frequency of the system clock signal, then 4 write data bits could be applied to each data bus terminal during each period of the system clock signal. Memory devices using this technique may be referred to as DDR4 memory devices. However, increases in the frequency of system clock signals may result in the “data eye” becoming too short to accurately capture the write data bits. Therefore, increasing system clock frequencies may make it difficult or impossible to accurately capture write data.

One approach to allowing use of DQS signals that are twice the frequency of the system clock signal may be used in DDR4 memory devices to divide the DQS signals by 2 and then generate 4 phases of the resulting half frequency signal. This approach results in 4 PH0-3 signals having the same frequency as the system clock signal, and it therefore provides the same internal “data eye” as the DQS signals in DDR3 memory devices. However, as shown in FIG. 1, each transition of the double frequency DQS signal still coincides with the rising edge of one of the PH0-3 signals so that a data bit is captured during each transition of the DQS signal.

Although using 4 PH0-3 signals having half the frequency of the DQS signal may reduce the problem of an excessively short “data eye,” it can create other problems. With reference to FIG. 2, capturing 64 bits of write data (i.e., 8 bits at each of 8 data bus terminals) followed by capturing another 64 bits of write data does not result in any problem because the PH0 signal will capture the first bit DQ0 of the second burst of 8-bits immediately after the PH3 signal captures the seventh bit DQ7 of the first burst of 8-bits. Thus the PH0-3 signals can correctly store the DQ0-7 bits of the second burst in a latch after the DQ0-7 bits of the first burst have been stored in the latch.

Although FIGS. 1 and 2 illustrate the lack of any problems when write data are applied to the data bus terminals in serial bursts of 4 bits and multiples of 4 bits, such as 8 data bits, a problem may exist if write data are applied to the data bus terminals in serial bursts of other than 4 bits. For example, as shown in FIG. 3, some memory devices may receive write data in bursts of either 8 write data bits applied to each data bus terminal or 10 write data bits applied to each data bus terminal. When 10 write data bits are applied to each data bus terminal, the first 4 bits may be captured during the first system clock period, and the second 4 bits may be captured during the second system clock period. However, 4 write data bits may also be captured during the third system clock period even though the first two of these captured bits are the last two bits of the first burst of write data bits, and the last two of these captured bits are the first two bits of the second burst of write data bits. Therefore, as shown in FIG. 4, the first rising edge of the PH0 signal captures the DQ0 bit at the start of the period when the write signal is active and stores the data bit in the DQ0 bit location of the latch. Similarly, the third rising edge of the PH1 signal captures the DQ9 bit and correctly stores it in a DQ9 bit location of the latch just before the DQ0 bit for the next burst of write data are applied to the respective data bus terminals. As a result, the rising edge of the PH2 signal that immediately follows the rising edge of the PH1 signal will capture the DQ0 bit of the next burst of data and improperly store the data in the DQ2 bit location of the latch. This situation may present a problem since the location of the latch (not shown) that should store the DQ2 bit will then be storing the DQ0 bit. Additionally, the bit location of the latch that should store the DQ3 bit will instead store the DQ1 bit, the bit location of the latch that should store the DQ4 bit will instead store the DQ2 bit, and so forth.

One example of a system 100 for solving this problem is illustrated in FIG. 4. The system 100 includes a sequencer 110 that receives the DQS signal and divides the DQS signal by two and generates signals PH0-3 that are at four phases of the divided signal. However, the sequencer 110 also generates signals PH0-3* that are at four phases of the complement of the PH0-3 signals, respectively. The sequencer 100 applies both the PH0-3 and the PH0-3* signals to a selector 120. The selector 120 under control of a controller 124 selects either the PH0-3 or the PH0-3* signals, and generates write latch signals W0-3 corresponding to the selected signals. In the event a burst of 10 data bits is applied to each of the eight data bus terminals, the 120 selector initially applies W0-3 signals corresponding to the PH0-3 signals to each of a set of eight 10-bit write latches 130 a-h. After the first 10 bits have been captured from each data bus terminal DQ, the selector 120 applies W0-3 signals corresponding to the PH0-3* signals to the latches 130 a-h to capture the data in the next 8-bit or 10-bit burst. Thus, the first bit of the first burst is captured as the first bit location and is output as bit DIN<0> in each of the latches 130 a-h, and the first bit of the second burst is also correctly captured as the first bit location and is output as bit DIN<0> in each of the latches 130 a-h. If the selector 120 did not switch from using the PH0-3 signals to using the PH0-3* signals to generate the W0-3 signals, the first bit of the second burst would be incorrectly captured at the third bit location and it would be output as bit DIN<2> in each of the latches 130 a-h.

As shown in FIG. 5, the first rising edge of the W0 signal corresponding to PH0 signal captures the first bit D0 of the first burst of 10 data bits, and the third rising edge of the W1 signal corresponding to the PH1 signal captures the last bit D9 of the first burst of 10 data bits. The selector 120 then selects the PH0-3* signals for use as the W0-3 signals at a time designated by the line SW in FIG. 5. The first rising edge of the W0 signal corresponding to PH0* signal therefore captures the first bit D0 of the second burst of 10 data bits, and the third rising edge of the W1 signal corresponding to the PH1* signal captures the last bit D9 of the second burst of 10 data bits. Thus, unlike in the example shown in FIG. 3, since the first bit D0 of the second burst of 10 data bits is captured by the PH0* signal, it is stored in the correct location in the latch for receiving the D0 bit.

Although the principle embodied in the data capture system 100 is illustrated with each of the latches 130 a-h configured to capture 10 data bits using 4 data capture signals having respective phases, it can be generalized to any data capture system in which latches are configured to capture M data bits using N data capture signals having respective phases, where M and N are each a positive integer. If M/N is an integer, then it may not be necessary for the controller 124 to generate a control signal that causes the selector 120 to switch from selecting one of the sets of periodic signals PH0-3 or PH0-3* to the other of the sets of periodic signals PH0-3* or PH0-3, respectively. However, if M/N is not an integer, then it may be necessary for the selector 120 to switch from selecting one set of periodic signals to the other so that the first bit of the subsequent burst will be correctly stored in the first location in the respective latch 130.

The data capture system 100 or a data capture system according to some other embodiment may be used in a wide variety of applications. For example, data capture system embodiments may be used in data input buffers, such as data input buffers used in a memory device as shown in FIG. 6. The memory device may be a conventional double data rate dynamic random access memory (“DDR DRAM”) 200 including a command decoder 204 for controlling its operation responsive to high-level command signals received on a control bus 206. The command decoder 204 may generate a sequence of command signals responsive to the high level command signals to carry out the function (e.g., a read or a write) designated by each of the high level command signals. The DDR DRAM may also include a clock generator 208 configured to generate a system clock signal CLK.

The DDR DRAM 200 may include an address register 212 that may receive row addresses and column addresses through an address bus 214. The address bus 214 may be coupled to a memory controller (not shown in FIG. 6). A row address may first be received by the address register 212 and applied to a row address multiplexer 218. The row address multiplexer 218 may couple the row address to a number of components associated with either of two memory banks 220, 222 depending upon the state of a bank address bit forming part of the row address. A respective row address latch 226 may be associated with each of the memory banks 220, 222 for storing the row address. A row decoder 228 may decode the row address and apply corresponding signals to one of the banks 220 or 222. The row address multiplexer 218 may also couple row addresses to the row address latches 226 for the purpose of refreshing the memory cells in the banks 220, 222. The row addresses may be generated for refresh purposes by a refresh counter 230, which may be controlled by a refresh controller 232. The refresh controller 232 may, in turn, be controlled by the command decoder 204.

After the row address has been applied to the address register 212 and stored in one of the row address latches 226, a column address may be applied to the address register 212. The address register 212 may couple the column address to a column address latch 240. Depending on the operating mode of the DDR DRAM 200, the column address may be either coupled through a burst counter 242 to a column address buffer 244, or to the burst counter 242, which may apply a sequence of column addresses to the column address buffer 244 starting at the column address output by the address register 212. In either case, the column address buffer 244 may apply a column address to a column decoder 248.

Data to be read from one of the banks 220, 222 may be coupled in parallel form to column circuitry 250, 252, which may include sense amplifiers, I/O gating, DQM & WPB mask logic, block write col/byte mask logic for one of the arrays 220, 222, respectively. The data bits developed by the sense amplifiers may then be coupled in parallel form to a data output buffer 256. The data output buffer 256 may include a serializer 268 configured to convert a plurality of sets of parallel data bits to corresponding bursts of serial data bits, and to apply each burst of serial data bits to each of several data bit terminals 258. The serializer 268 may also receive the CLK signal from the clock generator 208 for serializing the read data. Data to be written to one of the arrays 220, 222 may be coupled from each of the data bus terminals 258 to the data input buffer 260 in serial form. The data input buffer 260 may capture the serial input data using a data capture system 262, which may be the data capture system 100 or a data capture system according to another embodiment. The data capture system 262 also receives an externally applied DQS signal. The serial write data applied to each of the data bit terminals 258 is thus converted to a set of corresponding parallel data to be coupled to the banks 220, 222 in parallel form.

An embodiment of a memory system 300 is shown in FIG. 7. The memory system 300 includes a memory device 310, which may be the memory device 200 shown in FIG. 6, a memory device according to some other embodiment or a conventional memory device. The memory device 310 may be coupled through a command bus 320, address bus 330 and data bus 340 to a memory controller 350. The memory controller 350 may include a command circuit 354 configured to output memory commands, and an addressing circuit 356 configured to output memory addresses. The memory controller 350 may also include an output buffer 360 configured to output write data to the data bus 340, and a data input buffer 370 configured to receive read data from the data bus 340. The data input buffer 370 may include a read data capture system 380 configured to capture a burst of serial read data bits at each of a plurality of terminals of the data bus 340. The read data capture system 380, which may also receive an externally applied DQS signal, may be the data capture system 100 or a data capture system according to another embodiment.

Although the present invention has been described with reference to the disclosed embodiments, persons skilled in the art will recognize that changes may be made in form and detail without departing from the invention. For example, the term “bit” is used herein to describe a single binary digit. However, in other embodiments digits other than binary digits may be used. Such modifications are well within the skill of those ordinarily skilled in the art. Accordingly, the invention is not limited except as by the appended claims. 

1. A method of capturing a burst of serial data digits, comprising: generating a first set of periodic signals having respective phases that differ from each other; generating a second set of periodic signals having respective phases that differ from each other, the second set being different from the first set; selecting either the first set of periodic signals or the second set of periodic signals on the basis a number of read data digits in a burst of serial data digits; generating a set of data capture signals corresponding to the selected set of periodic signals; and capturing the burst of serial data digits responsive to the data capture signals.
 2. The method of claim 1 wherein the act of selecting either the first set of periodic signals or the second set of periodic signals comprises selecting either the first set of periodic signals or the second set of periodic signals to capture a burst of serial data digits based on the number of data digits in an immediately preceding burst of captured serial data digits.
 3. The method of claim 1 wherein the periodic signals in the second set comprise the compliment of the periodic signals in the first set.
 4. The method of claim 1 wherein the act of generating a set of data capture signals corresponding to the selected set of periodic signals comprises generating M data capture signals corresponding to the selected set of periodic signals, where M is a positive integer, and wherein the act of selecting either the first set of periodic signals or the second set of periodic signals comprises selecting one of the sets of periodic signals to generate the set of data capture signals to capture a first burst of N serial data digits, where is a positive integer, and, if N/M is other than an integer, selecting the other of the sets of periodic signals to generate the set of data capture signals to capture a second burst of serial data digits immediately following the first burst of serial data digits.
 5. The method of claim 1 wherein the act of capturing the burst of serial data digits responsive to the data capture signals comprises capturing a burst of 10 serial data digits responsive to 4 data capture signals.
 6. A system for capturing a burst of serial data digits applied to each of a plurality of data bus terminals, the system comprising: a sequencer configured to be responsive to an internal write command signal to generate a first set of periodic signals having respective phases that differ from each other, the sequencer being further configured to be responsive to the internal write command signal to generate a second set of periodic signals having respective phases that differ from each other and from corresponding signal in the first set; a selector coupled to receive the first and second sets of periodic signals from the sequencer, the selector being configured to select either the first set of periodic signals or the second set of periodic signals based on a received control signal, the selector being configured to generate a set of data capture signals corresponding to the selected set of periodic signals; a plurality of latches each of which includes a data input coupled to a respective one of the data bus terminals, each of the latches further including a clock input coupled to receive the data capture signals from the selector, each of the latches being configured to capture a data digit from the respective data bus terminal responsive to each of the data capture signals; and a controller configured to be responsive to an internal write command signal to control the selector so that the data capture signals capture a burst of data digits based on the number of data digits in a burst captured by the system.
 7. The system of claim 6 wherein the controller is configured to generate the control signal to capture a burst of data digits based on the number of data digits in the immediately preceding burst captured by the system.
 8. The system of claim 6 wherein the periodic signals in the first set of have respective phases that differ equally from each other, and the periodic signals in the second set of have respective phases that differ equally from each other.
 9. The system of claim 6 wherein the periodic signals in the second set comprise the compliment of the periodic signals in the first set.
 10. The system of claim 6 wherein each of the latches is configured to capture M data digits, and wherein the data capture signals received by the latches from the selector comprise N data capture signals, where M and N are respective positive integers, and wherein the controller is configured to generate the control signal to cause the selector to switch from selecting one of the sets of periodic signals to the other of the sets of periodic signals if M/N is other than an integer.
 11. The system of claim 10 wherein each of the latches is configured to capture 10 data digits, and wherein the data capture signals received by the latches from the selector comprise 4 data capture signals.
 12. A memory device, comprising: an array of memory cells; an addressing circuit coupled to the array of memory cells; a command decoder coupled to the array of memory cells; and a data path coupling the array of memory cells to a plurality of data bus terminals, the data path comprising: a data output buffer coupled to the array of memory cells and the data bus terminals, the data output buffer being configured to couple read data from the array of memory cells to the data bus terminals; and a data input buffer coupled to the array of memory cells and the data bus terminals, the data output buffer being configured to couple write data from the data bus terminals to the array of memory cells, the data input buffer comprising a write data capture system configured to capture a burst of serial write data digits applied to each of a plurality of data bus terminals, the write data capture system comprising, comprising: a sequencer configured to generate a first set of periodic signals having respective phases that differ from each other, the sequencer being further configured to generate a second set of periodic signals having respective phases that differ from each other and from corresponding signal in the first set; a selector coupled to receive the first and second sets of periodic signals from the sequencer, the selector being configured to select either the first set of periodic signals or the second set of periodic signals based on a received control signal, the selector being configured to generate a set of data capture signals corresponding to the selected set of periodic signals; a plurality of latches each of which includes a data input coupled to a respective one of the data bus terminals, each of the latches further including a clock input coupled to receive the data capture signals from the selector, each of the latches being configured to capture a write data digit from the respective data bus terminal responsive to each of the data capture signals; and a controller configured to generate the control signal to capture a burst of write data digits based on the number of write data digits in a burst captured by the system.
 13. The memory device of claim 12 wherein the memory device is coupled to receive a data strobe signal, and wherein the sequencer is coupled to receive the data strobe signal and is configured to generate the sets of periodic signals from the data strobe signal.
 14. The memory device of claim 12 wherein the sequencer is configured to generate the sets of periodic signals by dividing the frequency of the data strobe signal by an integer to generate a frequency-divided strobe signal, the frequency-divided strobe signal being used to generate the sets of periodic signals.
 15. The memory device of claim 12 wherein the an array of memory cells comprise an array of dynamic random access memory cells.
 16. The memory device of claim 12 wherein the memory device is configured to receive bursts of either eight serial digits or ten serial digits at each of its data bus terminals, and wherein the controller is configured to generate the control signal to cause the selector to switch from selecting one of the sets of periodic signals to the other of the sets of periodic signals to capture a burst of serial data applied to each of the data bus terminals if the prior burst of data was composed of ten serial digits of data applied to each of the data bus terminals.
 17. The memory device of claim 12 wherein the periodic signals in the second set comprise the compliment of the periodic signals in the first set.
 18. The memory device of claim 12 wherein the controller is configured to generate the control signal to capture a burst of data digits based on the number of data digits in the immediately preceding burst captured by the system.
 19. The memory device of claim 12 wherein each of the latches is configured to capture M data digits, and wherein the data capture signals received by the latches from the selector comprise N data capture signals, where M and N are respective positive integers, and wherein the controller is configured to generate the control signal to cause the selector to switch from selecting one of the sets of periodic signals to the other of the sets of periodic signals if M/N is other than an integer.
 20. A memory controller, comprising: a command circuit configured to output memory commands; an addressing circuit configured to output memory addresses; a data path output buffer configured to output write data; and a data input buffer configured to receive read data, the data input buffer comprising a read data capture system configured to capture a burst of serial read data digits applied to each of a plurality of data bus terminals, the read data capture system comprising, comprising: a sequencer configured to generate a first set of periodic signals having respective phases that differ from each other, the sequencer being further configured to generate a second set of periodic signals having respective phases that differ from each other and from corresponding signal in the first set; a selector coupled to receive the first and second sets of periodic signals from the sequencer, the selector being configured to select either the first set of periodic signals or the second set of periodic signals based on a received control signal, the selector being configured to generate a set of data capture signals corresponding to the selected set of periodic signals; a plurality of latches each of which includes a data input coupled to a respective one of the data bus terminals, each of the latches further including a clock input coupled to receive the data capture signals from the selector, each of the latches being configured to capture a read data digit from the respective data bus terminal responsive to each of the data capture signals; and a selector controller configured to generate the control signal to capture a burst of read data digits based on the number of read data digits in a burst captured by the system.
 21. The memory controller of claim 20 wherein the selector controller is configured to generate the control signal to capture a burst of data digits based on the number of data digits in the immediately preceding burst captured by the system.
 22. The memory controller of claim 20 wherein the periodic signals in the first set of have respective phases that differ equally from each other, and the periodic signals in the second set of have respective phases that differ equally from each other.
 23. The memory controller of claim 20 wherein the periodic signals in the second set comprise the compliment of the periodic signals in the first set.
 24. The memory controller of claim 20 wherein each of the latches is configured to capture M data digits, and wherein the data capture signals received by the latches from the selector comprise N data capture signals, where M and N are respective positive integers, and wherein the selector controller is configured to generate the control signal to cause the selector to switch from selecting one of the sets of periodic signals to the other of the sets of periodic signals if M/N is other than an integer.
 25. The memory controller of claim 24 wherein each of the latches is configured to capture either 8 or 10 serial data digits, and wherein the data capture signals received by the latches from the selector comprise 4 data capture signals. 